<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link rel="stylesheet" type="text/css" href="html.css" />
    <title>JAS Project</title>
  </head>
  <body class="main">
    <h1>Java Algebra System (JAS) Project </h1>

<p><strong>Introduction.</strong> 
The Java Algebra System (JAS) is an object oriented, type safe and
multi-threaded approach to computer algebra.
JAS provides a well designed software library using generic types 
for algebraic computations implemented in the Java programming language using the JVM runtime infrastructure.
The library can be used as any other Java software package or it can be
used interactively or interpreted through a jython (Java Python) or jruby (Java Ruby) front end,
there is also an Android App based on Ruboto (jruby for Android).
The focus of JAS is at the moment on commutative, solvable and non-commutative polynomials, 
power series, Groebner bases, factorization, real and complex roots and applications. 
By the use of Java as implementation language JAS is 64-bit and multi-core CPU
ready and can make use of mutiple CPUs where available.
JAS can run on a wide variety of devices ranging from Android to
compute clusters (using MPJ a Java Message Passing Interface (MPI) or OpenMPI).
</p>


<h2><a name="docu">Documentation Overview</a></h2>

<p>
The JAS documentation consists of Web overview and summary pages, 
API documentation of the Java, Ruby and Python implementations
and of published papers on specific topics of JAS.
</p>

<p>
For information on how to get started with JAS see the 
<a href="doc/guide.html" >users guide</a> or the <a href="README" target="main" >README</a>.  
For frequently asked questions see <a href="doc/faq.html" >FAQ</a>.
</p>

<p>
The software packages of the JAS library are summarized in the  
<a name="package" href="doc/packages.html" >packages</a> page.
There is an <a href="doc/gb-book.html">index of algorithms</a> for the book 
<a href="http://www.springer.com/mathematics/book/978-0-387-97971-7" target="gbb">Gr&ouml;bner bases</a> 
and their JAS equivalents.
An <a href="doc/algo-ca-book.html">index of algorithms</a> for the book 
<a href="http://www.springer.com/computer/theoretical+computer+science/book/978-0-7923-9259-0" 
target="gbb">Algorithms for Computer Algebra</a> 
and their JAS equivalents is also available.
</p>

<p>
The JAS <a href="doc/design.html" target="main" >API guide</a>
describes the interface and class design considerations and contains
an overview of the most important classes and methods.  An online
Javadoc documentation of the API together with source code is
contained in the 
<a href="doc/index.html" target="main" >API documentation</a> 
(also available as <a href="jas-doc.jar" target="doc">jas-doc.jar</a>).  
Some design considerations for the new generic version 
are discussed in the 
<a href="doc/problems.html" target="main">problems and issues</a>
page.
</p>

<p>JAS is open source. The licensing infos are in
<a href="COPYING.jas" target="copy" >COPYING.jas</a> (GPL)
or 
<a href="COPYING.lgpl.jas" target="copy" >COPYING.lgpl.jas</a> (LGPL).
The Java bytecode is dual licenced also under the Apache 2.0 licence 
to allow usage in Android projects.
</p>

<p>A list of papers and conference talks about JAS and its design and mathematical packages 
is contained in the
<a href="doc/publications.html" target="main" >publications</a> page.
</p>

<p>
This pages contain documentation for the latest version 
which is designed using type parameters and requires at least Java 7 (JDK 1.7).
It will also compile on Java 8 (JDK 1.8).
Older versions (no more supported) can be found here: 
<a href="../jas-2.4">JAS 2.4</a>,
<a href="../jas-2.3">JAS 2.3</a>,
<a href="../jas-2.2">JAS 2.2</a>,
<a href="../jas-2.1">JAS 2.1</a>,
<a href="../jas-2.0">JAS 2.0</a>,
<a href="../jas.j15">JAS using JDK 1.5</a> and
<a href="../jas.j14">JAS using JDK 1.4</a>.
</p>


<h2><a name="downlo">Download</a>, installation and usage scenarios</h2>

<p>
Informations on obtaining JAS and its optional packages is contained
in the <a href="doc/download.html" target="main">Download</a> page.
</p>


<h3><a name="eclipse-usage">Usage</a> with the JEclipse IDE</h3>

<p>
See <a href="doc/download.html#eclipse" target="main">Download</a> 
and <a href="doc/design.html" target="main">API guide</a>
pages.
</p>


<h3><a name="jython-usage">Usage</a> with the Jython interpreter</h3>

<p>
See <a href="doc/download.html#jython" target="main">Download</a> 
and <a href="doc/guide.html" target="main">Users guide</a> pages.
</p>

<h4>jython examples</h4>

<p>Commutative:
<a href="examples/trinks.py" target="py">trinks.py</a>,
<a href="examples/katsura.py" target="py">katsura.py</a>
</p>
<p>Solvable:
<a href="examples/wa_32.py" target="py">wa_32.py</a>,
<a href="examples/u_sl_3_prod.py" target="py">u_sl_3_prod.py</a>,
<a href="examples/u_sl_3.py" target="py">u_sl_3.py</a>
</p>
<p>Modules:
<a href="examples/armbruster.py" target="py">armbruster.py</a>,
<a href="examples/syz.py" target="py">syz.py</a>,
<a href="examples/syzy2.py" target="py">syzy2.py</a>
</p>


<h3><a name="jruby-usage">Usage</a> with the JRuby interpreter</h3>

<p>
See <a href="doc/download.html#jruby" target="main">Download</a>
and <a href="doc/guide.html" target="main">Users guide</a> pages.
</p>

<h4>jruby examples</h4>

<p>Commutative:
<a href="examples/trinks.rb" target="rb">trinks.rb</a>,
<a href="examples/all_rings.rb" target="rb">all_rings.rb</a>,
<a href="examples/gbs.rb" target="rb">gbs.rb</a>
</p>


<h3><a name="ruboto-usage">Usage</a> of the Android App</h3>

<p>

See the <a href="doc/download.html#ruboto-irb-jas" target="main">Download</a> page. 
<!--and <a href="doc/guide.html" target="main">Users guide</a> pages.--> 
As the Android app is based on Ruboto (jruby IRB for Android) the
usage is the same as with JRuby. There is a "Scripts" button in the
app where all ruby examples can be accessed.
</p>

<p>The main Ruboto screen with the "trinks.rb" example and its output looks as follows.
</p>
<p>
<a href="images/device-2012-11-18-jas-trinks.png" 
   ><img src="images/device-2012-11-18-jas-trinks-thumb.png" /></a> &nbsp;
<a href="images/device-2012-11-18-jas-trinks-out.png" 
   ><img src="images/device-2012-11-18-jas-trinks-out-thumb.png" /></a> &nbsp;
<a href="images/device-2012-11-18-jas-trinks-out-big.png" 
   ><img src="images/device-2012-11-18-jas-trinks-out-big-thumb.png" /></a>
</p>



<h3><a name="rungb">RunGB</a> Examples</h3>

<p>
The following are examples can be executed with 
the class <code>edu.jas.application.RunGB</code>. E.g. <br />
<code>java -cp .:log4j.jar:jas.jar:... edu.jas.application.RunGB &lt;args&gt;</code>
</p>

<p>Commutative:
<a href="examples/gbks.jas" target="jas">gbks.jas</a>,
<a href="examples/katsura2.jas" target="jas">katsura2.jas</a>,
<a href="examples/katsura3.jas" target="jas">katsura3.jas</a>,
<a href="examples/katsura4.jas" target="jas">katsura4.jas</a>,
<a href="examples/katsura5.jas" target="jas">katsura5.jas</a>,
<a href="examples/katsura5s.jas" target="jas">katsura5s.jas</a>,
<a href="examples/katsura5w.jas" target="jas">katsura5w.jas</a>,
<a href="examples/katsura6.jas" target="jas">katsura6.jas</a>,
<a href="examples/katsura6w.jas" target="jas">katsura6w.jas</a>,
<a href="examples/katsura7.jas" target="jas">katsura7.jas</a>,
<a href="examples/katsura8.jas" target="jas">katsura8.jas</a>,
<a href="examples/rose.jas" target="jas">rose.jas</a>,
<a href="examples/trinks6.jas" target="jas">trinks6.jas</a>,
<a href="examples/trinks7.jas" target="jas">trinks7.jas</a>,
<a href="examples/vw.jas" target="jas">vw.jas</a>,
</p>

<p>
The following are examples can be executed with 
<br />
<code>java -cp .:log4j.jar:jas.jar:... edu.jas.application.RunSGB &lt;args&gt;</code>
</p>

<p>Solvable:
<a href="examples/kw_18.jas" target="jas">kw_18.jas</a>,
<a href="examples/ore_t.jas" target="jas">ore_t.jas</a>,
<a href="examples/sgb.jas" target="jas">sgb.jas</a>,
<a href="examples/u_sl_3.jas" target="jas">u_sl_3.jas</a>,
<a href="examples/wa_1.jas" target="jas">wa_1.jas</a>,
<a href="examples/wa_32.jas" target="jas">wa_32.jas</a>,
<a href="examples/wa_34.jas" target="jas">wa_34.jas</a>,
<a href="examples/wa_39.jas" target="jas">wa_39.jas</a>,
<a href="examples/wa_41.jas" target="jas">wa_41.jas</a>,
<a href="examples/wa_61.jas" target="jas">wa_61.jas</a>
</p>

<hr />
<address><a name="contact" 
            href="mailto:kredel@at@rz.uni-mannheim.de">Heinz Kredel</a>
</address>

<p>
<!-- Created: Sat Mar 19 21:44:14 CET 2005 -->
<!-- hhmts start -->
Last modified: Sun Jul 19 13:23:22 CEST 2015
<!-- hhmts end -->
</p>
<!--p align="right" >
$Id$
</p-->

<p>
<a href="http://validator.w3.org/check?uri=referer" target="w3c"
   ><img src="http://www.w3.org/Icons/valid-xhtml10" height="31" width="88"
         alt="Valid XHTML 1.0!" /></a>

 <a href="http://jigsaw.w3.org/css-validator/" target="w3c"
    ><img src="http://www.w3.org/Icons/valid-css"
          alt="Valid CSS!" height="31" width="88"
     /></a>
</p>

  </body>
</html>
